/*
 * Ball.h
 *
 *  Created on: Nov 18, 2010
 *      Author: timmeh
 */

#ifndef BALL_H_
#define BALL_H_

#include "MovableEntity.h"
#include "Vector2.h"

namespace bo {

class Ball: public bo::MovableEntity {
public:
	Ball();
	virtual ~Ball();
	virtual void Visualize() = 0;
	virtual void SetSprite(const char*, const double) = 0;
	void Bounce(Entity*);
	bool CollidesWith(Entity*);
	void SetRadius(double);
	double GetRadius();
	void AdvanceBall();
	void SetDoubleVelocity(const double xVel, const double yVel);
	double GetXVelocity();
	double GetYVelocity();
	Vector2 GetPos();
	void SetPos(double, double);
private:
	Vector2 fPos;
	double fXVel, fYVel;
	double fRadius;
};

}

#endif /* BALL_H_ */
